/**
 * 返回字符串长度，中文按两个英文按一个计算
 */
function strlen(str) {
	var strlength = str.replace(/[^\x00-\xff]/g, "**").length;
	return strlength;
}

/**
 * 扩展easyui-validatebox 验证规则
 */
$.extend($.fn.validatebox.defaults.rules, {
	maxLength : {// 验证字符串长度，中文按两个英文按一个
		validator : function(value, param) {
			return (strlen(value) <= param[1]);
		},
		message : '{0} 最大长度不能超过 {1} 字符!'
	},
	integer : {// 验证整数
		validator : function(value, param) {
			len = 5;
			return (/^-?[0-9]\d*$/.test(value) && ((value >= param[0] && value <= param[1]) || (value >= -param[1] && value <= -param[0])));
		},
		message : '输入数值最大长度不能超过{2}位!'
	},
	integerValue : {// 验证整数
		validator : function(value, param) {
			return (/^-?[0-9]\d*$/.test(value) && ((value >= param[0] && value <= param[1]) || (value >= -param[1] && value <= -param[0])));
		},
		message : '输入数值最大长度不能超过{2}位,且数值不能大于{1}!'
	},
	positiveIntLen : {// 验证非负整数长度
		validator : function(value, param) {
			return (/^\d+$/.test(value) && value.length <= param[0]);
		},
		message : '输入数值应为大于等于零的整数，且最大长度不能超过{0}位!'
	},
	decimalLen : {// 验小数整数部分、小数部分长度(return false时返回message)
		validator : function(value, param) {
			var arr = value.split('.');
			return ((arr[0].length > 0 && arr[0].length <= param[0]) || (arr.length > 1 && arr[1].length <= param[1]));
		},
		message : '输入数值整数部分长度不能超过{0}位，小数部分长度不能超过{1}位!'
	},
	telephone : {
		validator : function(value, param) {
			return (/^0\d{2,3}(\-)?\d{7,8}(\-[0-9]{1,4})?$/.test(value));// 区号-座机号-分机号
		},
		message : '请输入正确的{0}!'
	},
	mobile : {
		validator : function(value, param) {
			return (/^(1(([3574][0-9])|[8][01236789]))\d{8}$/.test(value));
		},
		message : '请输入正确的手机号码!'
	},
	postCode : {
		validator : function(value, param) {
			return (/^[[0-9]{6}$/.test(value));
		},
		message : '请输入正确邮政编码！'
	},
	orgnizeCode : {// 验证组织编码:8位数字（或大写拉丁字母）本体代码和1位数字（或大写拉丁字母）校验码组成，中间“-”连接。
		validator : function(value, param) {
			var reg = /^([0-9A-Z]){8}-[0-9|X]$/;// /^[A-Za-z0-9]{8}-[A-Za-z0-9]{1}$/
			return reg.test(value);
		},
		message : '请输入正确的{0}!'
	}
});
